"""
爬取西安大众点评网酒店信息
URL链接：http://www.dianping.com/xian/hotel
爬取内容：
酒店信息：酒店名称、酒店位置、步行至地铁站距离、价格、商户星级、评价综述、酒店链接
顾客信息：id、name
评价情况：房间、环境、服务、评价时间、综合评价

"""
from bs4 import BeautifulSoup
import requests
import csv


url = 'http://www.dianping.com/chongqing/hotel'
dp_url = 'http://www.dianping.com'
page_list = list(range(1, 15))
heading_row = ['酒店名称', '酒店位置', '步行至地铁站距离', '价格', '商户星级', '评价综述', '酒店链接']

# 创建csv
with open('点评网酒店信息-重庆.csv', 'w', newline='') as csv_file:
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow(heading_row)
    for k1 in range(len(page_list)):
        rel_url_page = url + '/p' + str(page_list[k1])
        res = requests.get(rel_url_page)
        res.encoding = 'utf-8'
        soup = BeautifulSoup(res.text, 'html.parser')
        hotel_list = soup.select('.hotel-info-ctn')

        for hotel in hotel_list:
            # 酒店信息：酒店名称、酒店位置、步行至地铁站距离、价格、商户星级、评价综述、酒店链接
            # 酒店名称
            hotel_name = hotel.select('.hotel-info-main > .hotel-name > a')[0].text
            # 酒店位置
            hotel_place = hotel.select('.hotel-info-main > .place > a')[0].text
            # 步行至地铁站距离
            hotel_walk_dist = hotel.select('.hotel-info-main > .place > span')[0].text
            # 价格
            hotel_price = hotel.select('.hotel-remark > .price')[0].text.strip('\n')
            # 商户星级
            hotel_stars = soup.select('.hotel-remark > .remark > .item-rank-ctn > .item-rank-ctn > span')[0]['title']
            # 评价综述
            hotel_tags = hotel.select('.hotel-info-main > .hotel-tags')[0].text.replace('\n', ' ')
            # 酒店链接
            hotels_href = dp_url + hotel.select('.hotel-info-main > .hotel-name > a')[0]['href']

            data_list = [hotel_name, hotel_place, hotel_walk_dist, hotel_price, hotel_stars, hotel_tags, hotels_href]
            # print(data_list)
            csv_writer.writerow(data_list)
        print('第 %d 页抓取完成！' % page_list[k1])


